public class Solution85 {
    public int maximalRectangle(char[][] matrix) {
        int ans=0;
        for (int i=0;i<matrix.length;i++){
            int[] sum=new int[matrix[0].length];
            for (int j=i;j<matrix.length;j++){
                for (int k=0;k<matrix[0].length;k++){
                    sum[k]+=matrix[j][k]-'0';
                }
                int cross=j-i+1;
                int max=0;
                int cur=0;
                for (int k=0;k<matrix[0].length;k++){
                    if (sum[k]==cross){
                        cur++;
                    }else{
                        max=Math.max(max,cur);
                        cur=0;
                    }
                }
                max=Math.max(max,cur);
                ans=Math.max(ans,max*cross);
            }
        }
        return ans;
    }

    public static void main(String[] args) {
        System.out.println(new Solution85().maximalRectangle(new char[][]{{'1','0','1','0','0'},{'1','0','1','1','1'},{'1','1','1','1','1'},{'1','0','0','1','0'}}));
    }
}
